Recently, there has been a move toward virtualization of certain types of network functionality such as applications, services, and the like. In some virtualized networks, common off the shelf (“COTS”) hardware can be used to host virtual machines that can execute software to provide functionality associated with certain applications or services. Thus, specialized hardware and software can be replaced by generic hardware that can execute specialized software modules.
In some approaches to virtualization, DNS and load balancers may be used to provide for fault tolerance. In particular, several instances of virtual machines may run behind a load balancer (or load balancers). Thus, if one virtual machine fails or is compromised, the overall service may not be impacted drastically as redundant copies of the virtual machine may exist. This approach may require that each virtual machine may need its own redundant virtual machine image or backup virtual machine image to provide the desired level of fault tolerance.
Providing several instances of virtual machines behind a load balancer and/or providing DNS-based redundancy for virtual machines may not always be practical (or even possible) at the component level. Thus, some virtualized services or applications may not provide tolerance to failures and/or faults and therefore may be susceptible to catastrophic failures in certain circumstances.